package com.empire.module.member.controller.admin.mappolygon.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;

@Data
@Schema(description = "管理后台 - 地图多边形新增/修改VO（含顶点）")
public class MapPolygonSaveReqVO {
    @Schema(description = "多边形ID（UUID）")
    private String id;

    @Schema(description = "关联配置ID", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "关联配置ID不能为空")
    private String configId;

    @Schema(description = "多边形名称", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "多边形名称不能为空")
    private String name;

    @Schema(description = "描边颜色", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "描边颜色不能为空")
    private String strokeColor;

    @Schema(description = "描边宽度", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "描边宽度不能为空")
    private Integer strokeWeight;

    @Schema(description = "填充颜色", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "填充颜色不能为空")
    private String fillColor;

    @Schema(description = "填充透明度", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "填充透明度不能为空")
    private BigDecimal fillOpacity;

    @Schema(description = "层级", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "层级不能为空")
    private Integer roomLevel;

    @Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "排序不能为空")
    private Integer sortOrder;

    // 新增：顶点列表
    @Schema(description = "多边形顶点列表", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "顶点列表不能为空")
    private List<MapPolygonPointVO> points;
}
